R u Ready? HS2025 | Psychologie der Digitalisierung - Einheit 10

Sandra Grinschgl, Aaron Friedli, Lars Schilling

R u Ready? Reproduzierbare Datenaufbereitung und -analyse mit R

HS 2025


LV-Leitung: Dr. Sandra Grinschgl / MSc. Aaron Friedli
Tutor: BSc. Lars Schilling


10. Einheit, 19.11.2025

Heute:

Muddiest Points!

Gruppe Sandra

Fortsetzung Datenqualität -> Folien EH 9

Zuerst Theorie, dann Hands-On

Hands-on Block 5: Check In

Haben alle einen Long Datensatz (e.g. dat_full_long) mit 318 Zeilen = 2 Zeilen pro Versuchsperson?

Wenn nicht:

dat_full_long <- dat_full |> 
  pivot_longer(cols = c(pre1, pre4),
               names_to = "time_rating",         
               values_to = "rating")

❗Falls ihr bis Ende Lektion noch nicht den LONG Datensatz erstellt und gespeichert habt - meldet euch bei uns

Visualize: Tabellen

  • Möglichkeit APA konforme Tabellen in R zu erstellen

Schritt 1: Deskriptive Tabelle erstellen mit summarize

penguins_full <- drop_na(penguins)
penguins_summary <- penguins_full |> 
  group_by(species) |>
  summarize(mean_body_mass = mean(body_mass_g),
            min_body_mass = min(body_mass_g),
            max_body_mass = max(body_mass_g)
            )

penguins_summary
# A tibble: 3 × 4
  species   mean_body_mass min_body_mass max_body_mass
  <fct>              <dbl>         <int>         <int>
1 Adelie             3706.          2850          4775
2 Chinstrap          3733.          2700          4800
3 Gentoo             5092.          3950          6300

Visualize: Tabellen

Schritt 2: kable auf deskriptive Tabelle anwenden

library(knitr)

penguins_summary |>
  kable(
    caption = "Summary of penguin body mass by species",
    digits = 1,
    col.names = c("Species", "Mean body mass (g)", "Min", "Max")
  )
Summary of penguin body mass by species
Species Mean body mass (g) Min Max
Adelie 3706.2 2850 4775
Chinstrap 3733.1 2700 4800
Gentoo 5092.4 3950 6300

Weitere Formatierungen möglich, z.B. row.names, col.names…siehe Hilfefunktion

apaTables - APA konforme Tabellen von statistischen Analysen

Korrelationstabelle im APA Format –> Kann man auch für Regressionen und ANOVAs verwenden

1.Schritt: Auswahl von Variablen

penguins_subset <- penguins |>
  select(bill_length_mm, bill_depth_mm, flipper_length_mm)

apaTables - APA konforme Tabellen von statistischen Analysen

2.Schritt: Korrelationstabelle for ausgewählte Variablen

Speichert Tabelle als Word Datei

library(apaTables)
apa.cor.table(penguins_subset)

Abbildungen: Visualize (Fortsetzung in EH 11)

Visualisierungen: Reproduktion der Figures aus Grinschgl 2021

Visualisierungen

ggplot2()

Sehr flexibles Paket.

  • Plots werden schrittweise “befüllt”
  • Alle plots beginnen mit ggplot() und dem verwendeten Datensatz

  • Mit aes() definieren wir die elemantaren Elemente der Plots - Variablen die geplottet werden sollen

  • mit + können wir geoms, layers und weitere Elemente hinzufügen.

ggplot2() - Cheatsheet

Argumente von ggplot()

  • Variablen als Aestheatic Mappings defineren

  • Mapping ist immer das zweite argument, “call” kann also auch verkürzt werden.

p <- penguins |>
  ggplot( 
       mapping = 
         aes(x = body_mass_g, 
           y = bill_length_mm))
p

ggplot() - Geoms

  • Layers Hinzufügen z.B. ein geom mit +
  • Geoms = geometrische Objekte, die die Daten darstellen (z.B. Punkte, Linien)
  • Muss je nachdem welche Daten man hat und wie man diese darstellen will ausgewählt werden, z.B.
    • Kategoriale Variable: geom_bar()
    • Kontinuierliche Variable: geom_histogram()
    • 2 kontinuierliche Variablen: geom_point(), geom_line()
    • 2 Kategoriale Variablen: geom_count()
    • Kategorial + Kontinuierlich: geom_boxplot(), geom_violin()
p <- p +
  geom_point()

p

ggplot() - Layers

  • Mappings können auch in den Layers definiert werden
p <- p + 
  geom_point(aes(x = body_mass_g, 
           y = bill_length_mm))

p

ggplot() - Layers

  • Titel + Achsenbeschriftung (= labs), Regressionslinien, vereinfachtes Design
p <- p +
  geom_smooth(aes(group = 1), method = "lm") +
  theme_classic() +
  labs(
    title = "Relationship Between Body Mass and Bill Length",
    x = "Body Mass (g)",
    y = "Bill Length (mm)"
  )

p

mit theme_ können verschiedene Formatierungen gewählt werden. theme_classic wird typischerweise für APA7 passende Formatierungen gewählt.

ggplot() - Verschiedene Layers/Geoms kombiniert

p2 <- penguins |>
  ggplot(aes(x = island, y = body_mass_g, color = island, shape = sex)) +
  geom_boxplot() +
  geom_jitter(alpha = 0.5)+
  theme_classic()+
  labs(
    title = "Body Mass Per Island and Species", x = "Island", y = "Body Mass (g)")
p2

Abbildungen speichern

ggsave(filename = "my_first_plot.png", plot = p2)

Weitere Ressourcen:

Viel, viel mehr Möglichkeiten als wir hier besprechen, siehe z.B.:

Auflistung von Argumenten

ggplot2 Cheatsheet

R for Data Science – Kapitel 9 & 10:
Kapitel „Layers“

Kapitel „EDA“

Weitere Textelemente in Abbildungen (Kapitel 11)

Hier findet man auch weitere Visualisierungsmöglichkeiten & Informationen dazu, wie man verschiedene Plots neben/untereinander abbilden kann.

Top 50 Visualisierungen mit ggplot2

für Animationen, Signifikanztests, Wordclouds usw.

Heute haben wir:

  • Muddiest Points besprochen

  • Basics der Datenvisualisierungen kennengelernt

    • Erstellung von Tabellen

    • ggplot()

Reminder: Beim Abschlussprojekt müsst ihr 1 Tabelle oder Abbildung nach Wahl zu den simulierten Daten abgeben.

R Hausübung 2

Abgabe bis Freitag 28.11.2025, 23:55

Peerfeedback bis Mittwoch 03.12.2025 (vor der Einheit)

Achtung: Einhalten der Namensvorgaben!